nethackfandomcom-20200214-history
Source:NetHack 3.3.0/macwin.h
Below is the full text to macwin.h from the source code of NetHack 3.3.0. To link to a particular line, write [[NetHack 3.3.0/macwin.h#line123]], for example. Warning! This is the source code from an old release. For the latest release, see Source code 1. /* SCCS Id: @(#)macwin.h 3.3 96/01/15 */ 2. /* Copyright © Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3. /* NetHack may be freely redistributed. See license for details. */ 4. 5. #ifndef MACWIN_H 6. # define MACWIN_H 7. 8. /* more headers */ 9. #ifdef THINK_C 10. #include /* for CtoPStr and PtoCStr */ 11. #endif 12. 13. /* resources */ 14. #define PLAYER_NAME_RES_ID 1001 15. 16. /* fake some things if we don't have universal headers.. */ 17. #ifndef NewUserItemProc 18. typedef pascal void (*UserItemProcPtr)(WindowPtr theWindow, short itemNo); 19. typedef UserItemProcPtr UserItemUPP; 20. #define NewUserItemProc(p) (UserItemUPP)(p) 21. 22. typedef pascal void (*ControlActionProcPtr)(ControlHandle theControl, short partCode); 23. typedef ControlActionProcPtr ControlActionUPP; 24. #define NewControlActionProc(p) (ControlActionUPP)(p) 25. 26. typedef ModalFilterProcPtr ModalFilterUPP; 27. #define DisposeRoutineDescriptor(p) 28. #endif 29. 30. /* misc */ 31. #ifdef __MWERKS__ 32. # define ResumeProcPtr long /* for call to InitDialogs */ 33. #endif 34. 35. 36. /* 37. * Mac windows 38. */ 39. #define NUM_MACWINDOWS 15 40. #define TEXT_BLOCK 512L 41. 42. /* Window constants */ 43. #define kMapWindow 0 44. #define kStatusWindow 1 45. #define kMessageWindow 2 46. #define kTextWindow 3 47. #define kMenuWindow 4 48. #define kLastWindowKind kMenuWindow 49. 50. /* 51. * This determines the minimum logical line length in text windows 52. * That is; even if physical width is less, this is where line breaks 53. * go at the minimum. 350 is about right for score lines with a 54. * geneva 10 pt font. 55. */ 56. #define MIN_RIGHT 350 57. 58. typedef struct { 59. anything id; 60. char accelerator; 61. char groupAcc; 62. short line; 63. } MacMHMenuItem; 64. 65. typedef struct NhWindow { 66. WindowPtr its_window ; 67. /* short kind ;*/ 68. 69. short font_number ; 70. short font_size ; 71. short char_width ; 72. short row_height ; 73. short ascent_height ; 74. 75. short x_size; 76. short y_size; 77. short x_curs; 78. short y_curs; 79. 80. short last_more_lin ; /* Used by message window */ 81. short save_lin ; /* Used by message window */ 82. 83. short miSize; /* size of menu items arrays */ 84. short miLen; /* number of menu items in array */ 85. MacMHMenuItem **menuInfo; /* Used by menus (array handle) */ 86. char menuChar; /* next menu accelerator to use */ 87. short **menuSelected; /* list of selected elements from list */ 88. short miSelLen; /* number of items selected */ 89. short how; /* menu mode */ 90. 91. char drawn ; 92. Handle windowText ; 93. long windowTextLen ; 94. short scrollPos ; 95. ControlHandle scrollBar ; 96. } NhWindow ; 97. 98. extern NhWindow *GetNhWin(WindowPtr mac_win); 99. 100. 101. #define NUM_STAT_ROWS 2 102. #define NUM_ROWS 22 103. #define NUM_COLS 80 /* We shouldn't use column 0 */ 104. #define QUEUE_LEN 24 105. 106. extern NhWindow * theWindows ; 107. 108. extern struct window_procs mac_procs ; 109. 110. #define NHW_BASE 0 111. extern winid BASE_WINDOW , WIN_MAP , WIN_MESSAGE , WIN_INVEN , WIN_STATUS ; 112. 113. 114. /* 115. * External declarations for the window routines. 116. */ 117. 118. #define E extern 119. 120. /* ### dprintf.c ### */ 121. 122. extern void dprintf ( char * , ... ) ; 123. 124. /* ### maccurs.c ### */ 125. 126. extern Boolean RetrievePosition ( short , short * , short * ) ; 127. extern Boolean RetrieveSize ( short , short , short , short * , short * ) ; 128. extern void SaveWindowPos ( WindowPtr ) ; 129. extern void SaveWindowSize ( WindowPtr ) ; 130. extern Boolean FDECL(RetrieveWinPos, (WindowPtr,short *,short *)); 131. 132. /* ### macerrs.c ### */ 133. 134. extern void comment(char *,long); 135. extern void showerror(char *,const char *); 136. extern Boolean itworked( short ); 137. extern void mustwork( short ); 138. extern void attemptingto( char * ); 139. extern void pushattemptingto( char * ); 140. extern void popattempt( void ); 141. 142. /* ### macfile.c ### */ 143. 144. /* extern char *macgets(int fd, char *ptr, unsigned len); unused */ 145. extern void FDECL(C2P,(const char *c, unsigned char *p)); 146. extern void FDECL(P2C,(const unsigned char *p, char *c)); 147. 148. /* ### macmenu.c ### */ 149. 150. extern void DoMenuEvt ( long ) ; 151. extern void InitMenuRes(void); 152. extern void AdjustMenus(short); 153. 154. /* ### macmain.c ### */ 155. 156. extern void FDECL ( process_openfile, (short src_vol, long src_dir, Str255 fName, OSType ftype)); 157. 158. /* ### macwin.c ### */ 159. 160. extern void AddToKeyQueue(int, Boolean); 161. extern int GetFromKeyQueue ( void ) ; 162. void trans_num_keys ( EventRecord * ) ; 163. extern void NDECL ( InitMac ) ; 164. int FDECL ( try_key_queue , ( char * ) ) ; 165. void FDECL ( enter_topl_mode , ( char * ) ) ; 166. void FDECL ( leave_topl_mode , ( char * ) ) ; 167. void FDECL ( topl_set_resp , ( char * , char ) ) ; 168. Boolean FDECL ( topl_key , ( unsigned char ) ) ; 169. Boolean FDECL ( topl_ext_key , ( unsigned char ) ) ; 170. extern void WindowGoAway(EventRecord *, WindowPtr); 171. E void FDECL(HandleEvent, (EventRecord *)); /* used in mmodal.c */ 172. extern void NDECL(port_help); 173. 174. #define DimMenuBar() AdjustMenus(1) 175. #define UndimMenuBar() AdjustMenus(0) 176. 177. extern Boolean small_screen ; 178. 179. /* ### mstring.c ### */ 180. 181. #ifdef applec 182. extern char *PtoCstr(unsigned char *); 183. extern unsigned char *CtoPstr(char *); 184. #endif 185. 186. E void FDECL(mac_init_nhwindows, (int *, char **)); 187. E void NDECL(mac_player_selection); 188. E void NDECL(mac_askname); 189. E void NDECL(mac_get_nh_event) ; 190. E void FDECL(mac_exit_nhwindows, (const char *)); 191. E void FDECL(mac_suspend_nhwindows, (const char *)); 192. E void NDECL(mac_resume_nhwindows); 193. E winid FDECL(mac_create_nhwindow, (int)); 194. E void FDECL(mac_clear_nhwindow, (winid)); 195. E void FDECL(mac_display_nhwindow, (winid, BOOLEAN_P)); 196. E void FDECL(mac_destroy_nhwindow, (winid)); 197. E void FDECL(mac_curs, (winid,int,int)); 198. E void FDECL(mac_putstr, (winid, int, const char *)); 199. E void FDECL(mac_display_file, (const char *, BOOLEAN_P)); 200. E void FDECL(mac_start_menu, (winid)); 201. E void FDECL(mac_add_menu, (winid,int,const anything *, 202. CHAR_P,CHAR_P,int,const char *, BOOLEAN_P)); 203. E void FDECL(mac_end_menu, (winid, const char *)); 204. E int FDECL(mac_select_menu, (winid, int, menu_item **)); 205. E void NDECL(mac_update_inventory); 206. E void NDECL(mac_mark_synch); 207. E void NDECL(mac_wait_synch); 208. #ifdef CLIPPING 209. E void FDECL(mac_cliparound, (int, int)); 210. #endif 211. E void FDECL(mac_print_glyph, (winid,XCHAR_P,XCHAR_P,int)); 212. E void FDECL(mac_raw_print, (const char *)); 213. E void FDECL(mac_raw_print_bold, (const char *)); 214. E int NDECL(mac_nhgetch); 215. E int FDECL(mac_nh_poskey, (int *, int *, int *)); 216. E void NDECL(mac_nhbell); 217. E int NDECL(mac_doprev_message); 218. E char FDECL(mac_yn_function, (const char *, const char *, CHAR_P)); 219. E void FDECL(mac_getlin, (const char *,char *)); 220. E int NDECL(mac_get_ext_cmd); 221. E void FDECL(mac_number_pad, (int)); 222. E void NDECL(mac_delay_output); 223. 224. #undef E 225. 226. #endif /* ! MACWIN_H */ macwin.h